/**
 * 快慢双指针，滑动窗口，如果快指针元素不等于则赋值给慢指针元素
 * @param {number[]} nums
 * @param {number} val
 * @return {number}
 */
const removeElement = (nums, val) => {
  let l = r = 0
  while (r < nums.length) {
    if (nums[r] !== val) {
      nums[l] = nums[r]
      l++
    }
    r++
  }
  return l
}

console.log(removeElement([3, 2, 2, 3], 3))